Main: GOSUB Boards CHAIN "df0:Menus",20,ALL Modem: IF rings=0 THEN OtherModem x=FRE(0) FOR j=1 TO LEN(a$):p$=MID$(a$,j,1) PRINT p$;:PRINT#1,p$;:NEXT j a$="":p$="":RETURN OtherModem: x=FRE(0) FOR j=1 TO LEN(a$):p$=MID$(a$,j,1) PRINT p$;:NEXT j a$="":p$="":RETURN Answers: telly=0:t$="":t=0:i$="":ch$="":alter=0:IF rings=0 THEN SomeAnswers WHILE 1 AND alter<1 WHILE LOC(1)<>0 ch$=INPUT$(1,1) equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs) i$=i$+ch$:equivs=0 telly=telly+1:IF telly=78 THEN ch$=r$:telly=0 IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2):telly=telly-2 IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN alter=3:telly=0 a$=ch$:GOSUB Modem:ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN WEND ch$=INKEY$:i$=i$+ch$ a$=ch$:GOSUB Modem IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN telly=0:GOTO MoreAnswers IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2) ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN WEND IF i$<>"" THEN MoreAnswers SomeAnswers: ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2) ch$="" GOTO SomeAnswers MoreAnswers: IF okp<>1 THEN RETURN IF i$="" THEN ch$="":GOTO Answers t$=i$:IF LEN(t$)>80 THEN t$=LEFT$(t$,78)+r$ RETURN SeqRead: ERASE TBL$:DIM TBL$(45) a$=r$+r$+"[> K Quits <]"+r$+r$:GOSUB Modem OPEN "I", #3, file$ ReadSeq: j=0:L=0:k=0:Countl=0 WHILE NOT EOF(3) x=FRE(0):j=j+1 LINE INPUT#3,TBL$(j):TBL$(j)=TBL$(j)+r$ WEND CLOSE#3:k=j:L=0:Detect=0 WHILE L0 ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs) i$=i$+ch$:equivs=0:a$=ch$:GOSUB Modem WEND IF i$<>"" THEN MoreCheckSeq SomeCheckSeq: ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem OtherCheckSeq: IF Detect=1 GOTO MoreCheckSeq Countl=Countl+1:IF Countl=24 THEN a$=r$+"More (y,n,c)?":GOSUB A1 IF Countl=24 THEN MenS$=UCASE$(LEFT$(t$,1)):IF MenS$="N" THEN L=k+1 IF Countl=24 AND MenS$="Y" THEN Countl=0 IF Countl=24 AND MenS$="C" THEN Detect=1 IF Countl=24 AND Detect<>1 THEN Countl=0 MoreCheckSeq: IF i$=CHR$(75) OR i$=CHR$(107) THEN L=k+1 WEND ERASE TBL$:DIM TBL$(45):RETURN A1: GOSUB Modem:GOSUB Answers:RETURN Boards: IF okp<>1 THEN RETURN GOSUB CheckConTime:IF okp<>1 THEN RETURN MenS$="":L=0 a$=r$+"Loading Titles..."+r$:GOSUB Modem OPEN "I", #3, "df1:Board/B"+RIGHT$(zl$,1) FOR j=1 TO 4:LINE INPUT#3,numM$(j):NEXT j:CLOSE#3 OPEN "I", #3, "df1:Board/"+zl$ FOR j=1 TO VAL(numM$(3))*2 L=L+1 LINE INPUT#3,ABCS$(j):ABCS$(j)=ABCS$(j)+r$ IF L=2 THEN ABCS$(j)=ABCS$(j)+r$:L=0 NEXT j:CLOSE#3 a$=r$+"There are "+numM$(3)+" messages."+r$:GOSUB Modem a$=r$+"Highest message you have read is "+Board$(meni)+r$:GOSUB Modem MoreBoards: IF okp<>1 THEN RETURN GOSUB CheckConTime:IF okp<>1 THEN RETURN MenS$="":a$=r$+"B"+RIGHT$(zl$,1)+":":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="H" THEN file$="df1:Board/BHelp":GOSUB SeqRead:GOTO MoreBoards IF MenS$="?" THEN file$="df1:Board/BMenu":GOSUB SeqRead:GOTO MoreBoards IF MenS$="R" THEN BoardRead IF MenS$="L" THEN file$="df1:Board/ListBoards":GOSUB SeqRead:GOTO MoreBoards IF MenS$="P" THEN GOSUB BoardPost:GOTO MoreBoards IF MenS$="S" THEN BoardScan IF MenS$="C" THEN BoardChange IF MenS$="X" THEN RETURN a$=r$+"No such command."+r$:GOSUB Modem:GOTO MoreBoards CheckConTime: ContiMe$=TIME$:ChEntTime$=RIGHT$(EnttiMe$,5):ContiMe$=RIGHT$(ContiMe$,5) ContiMe=VAL(ContiMe$):EnttiMe=VAL(ChEntTime$) IF EnttiMe>58 AND EnttiMe>ContiMe THEN EnttiMe=ContiMe IF ContiMe-EnttiMe>30 AND Veru$="000" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN IF ContiMe-EnttiMe>45 AND Veru$="007" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN okp=1:RETURN BoardPost: IF Veru$="000" THEN a$=r$+"Not validated for that command":GOSUB Modem:RETURN a$=r$+"Subject:":GOSUB A1:Subject$=LEFT$(t$,LEN(t$)-1):IF LEN(Subject$)>30 THEN BoardPost TBL$(1)="Time:"+TIME$+" "+"Date:"+DATE$ TBL$(2)="Name:"+Name1$+" "+Name2$+"Subject:"+Subject$+" UserID:"+UserID$ TBL$(3)=r$ a$=r$+"Enter Message: [Max. 40 lines] /EX to Exit"+r$:GOSUB Modem Extm=0:Ddt=3 WHILE Extm<1 Ddt=Ddt+1 a$=r$+STR$(Ddt-3)+":":GOSUB A1 TBL$(Ddt)=t$ IF UCASE$(LEFT$(t$,3))="/EX" THEN Extm=1:Ddt=Ddt-1 IF Ddt=42 THEN a$=r$+"Last Line!":GOSUB Modem IF Ddt=43 THEN Extm=1 WEND QueryBoardPost: a$=r$+"A- Abort S- Save L- List I- Insert R- Replace C- Continue D- Delete :":GOSUB A1 MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="A" THEN RETURN IF MenS$="S" THEN GOSUB BoardPostSave:RETURN IF MenS$="L" THEN BoardPostList IF MenS$="I" THEN BoardPostInsert IF MenS$="R" THEN BoardPostReplace IF MenS$="D" THEN BoardPostDelete IF MenS$="C" THEN BoardPostContinue GOTO QueryBoardPost BoardPostInsert: IF Ddt>=199 THEN a$=r$+"No room to insert.":GOSUB Modem:GOTO QueryBoardPost a$=r$+"Insert before which line:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN QueryBoardPost instln=VAL(t$)+3 FOR j=Ddt TO instln STEP -1 TBL$(j+1)=TBL$(j) NEXT j TBL$(instln)=" "+r$:Ddt=Ddt+1 GOTO QueryBoardPost BoardPostDelete: a$=r$+"Delete starting which line:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN QueryBoardPost stln=VAL(t$)+3:IF stln<4 OR stln>Ddt THEN QueryBoardPost a$=r$+"Ending which line:":GOSUB A1:endtln=VAL(t$)+3:IF endtln>Ddt THEN endtln=Ddt IF stln>endtln THEN SWAP stln,endtln a$=r$+"Delete from"+STR$(stln-3)+" to"+STR$(endtln-3)+r$+"Are you sure? (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="N" THEN QueryBoardPost FOR j=endtln+1 TO Ddt TBL$(j-((endtln+1)-stln))=TBL$(j) NEXT j Ddt=Ddt-((endtln+1)-stln) FOR j=Ddt TO Ddt+((endtln+1)-stln) TBL$(j)=" "+r$ NEXT j GOTO QueryBoardPost BoardPostList: a$=r$+"Line to start at:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN QueryBoardPost stln=VAL(t$)+3:IF stln<4 OR stln>Ddt THEN QueryBoardPost a$=r$+"Line to stop at:":GOSUB A1:endtln=VAL(t$)+3:IF endtlnDdt THEN endtln=Ddt FOR L=stln TO endtln a$=STR$(L-3)+":"+TBL$(L):GOSUB Modem NEXT L GOTO QueryBoardPost BoardPostReplace: a$=r$+"Replace which line:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN QueryBoardPost rplnn=VAL(t$)+3:IF rplnn<4 OR rplnn>Ddt THEN QueryBoardPost a$=r$+"Replace:"+ABCS$(rplnn)+"With:":GOSUB A1:IF t$=CHR$(10) OR t$=CHR$(13) THEN QueryBoardPost Temprep$=t$ a$=r$+"Replace:"+TBL$(rplnn)+"With:"+Temprep$+"(Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="Y" THEN TBL$(rplnn)=Temprep$ GOTO QueryBoardPost BoardPostContinue: IF Ddt>198 THEN a$=r$+"No Room!":GOTO QueryBoardPost Dzz=0 a$=r$+"Enter Text: [Max. 197 lines] /EX to Exit":GOSUB Modem WHILE Dzz<1 Ddt=Ddt+1 a$=r$+STR$(Ddt-3)+":":GOSUB A1:TBL$(Ddt)=t$ IF UCASE$(LEFT$(t$,3))="/EX" THEN Dzz=1:Ddt=Ddt-1 IF Ddt=199 THEN a$=r$+"Last Line!":GOSUB Modem IF Ddt=200 THEN Dzz=1 WEND GOTO QueryBoardPost BoardPostSave: Guanm(1)=VAL(numM$(1)):Guanm(2)=VAL(numM$(2)):Guanm(3)=VAL(numM$(3)):Guanm(4)=VAL(numM$(4)) CLOSE#3 OPEN "A",#3,"df1:Board/"+zl$ PRINT#3,TBL$(1) PRINT#3,TBL$(2) CLOSE#3:ABCS$((Guanm(4)*2)-1)=TBL$(1)+r$:ABCS$(Guanm(4)*2)=TBL$(2)+r$+r$ Guanm(2)=Guanm(4):Guanm(3)=Guanm(3)+1 Guanm(4)=Guanm(4)+1 numM$(1)=STR$(Guanm(1)):numM$(1)=RIGHT$(numM$(1),LEN(numM$(1))-1) numM$(2)=STR$(Guanm(2)):numM$(2)=RIGHT$(numM$(2),LEN(numM$(2))-1) numM$(3)=STR$(Guanm(3)):numM$(3)=RIGHT$(numM$(3),LEN(numM$(3))-1) numM$(4)=STR$(Guanm(4)):numM$(4)=RIGHT$(numM$(4),LEN(numM$(4))-1) Board$(meni)=numM$(2) OPEN "O",#3,"df1:Board/B"+RIGHT$(zl$,1) FOR j=1 TO 4 PRINT#3,numM$(j) NEXT j:CLOSE#3 Boars$=STR$(Guanm(2)):Boars$=RIGHT$(Boars$,LEN(Boars$)-1) Boars$=RIGHT$(zl$,1)+Boars$+"." OPEN "O",#3,"df1:Board/"+Boars$ FOR j=1 TO Ddt PRINT#3,TBL$(j) NEXT j:CLOSE#3 RETURN BoardRead: a$=r$+"N- New F- Forward R- Reverse M- Marked X- Exit :":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="N" THEN NewBoardRead IF MenS$="F" THEN ForwardBoardRead IF MenS$="R" THEN ReverseBoardRead IF MenS$="M" THEN MarkedBoardRead IF MenS$="X" THEN MoreBoards GOTO BoardRead NewBoardRead: chde=0:bbk=VAL(Board$(meni)):IF bbk=VAL(numM$(2)) THEN a$=r$+"No new messages.":GOSUB Modem:GOTO BoardRead WHILE chde<1 bbk=bbk+1 Board$(meni)=STR$(bbk):Board$(meni)=RIGHT$(Board$(meni),LEN(Board$(meni))-1) Boars$=RIGHT$(zl$,1)+Board$(meni)+"." file$="df1:Board/"+Boars$:Ddt=0:GOSUB SeqRead a$=r$+"N- Next R- Reply Q- Quit :":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="R" THEN GOSUB BoardPost IF MenS$="Q" THEN bbk=VAL(numM$(2)) IF bbk=VAL(numM$(2)) THEN chde=1 WEND GOTO BoardRead ForwardBoardRead: a$=r$+"Messages "+numM$(1)+" to "+numM$(2):GOSUB Modem a$=r$+"Start with which message :":GOSUB A1:bbk=VAL(t$) IF bbk VAL(numM$(2)) THEN BoardRead chde=0 WHILE chde<1 IF bbk> VAL(Board$(meni)) THEN Board$(meni)=STR$(bbk):Board$(meni)=RIGHT$(Board$(meni),LEN(Board$(meni))-1) Boars$=STR$(bbk):Boars$=RIGHT$(Boars$,LEN(Boars$)-1) Boars$=RIGHT$(zl$,1)+Boars$+"." file$="df1:Board/"+Boars$:Ddt=0:GOSUB SeqRead a$=r$+"N- Next R- Reply Q- Quit :":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="R" THEN GOSUB BoardPost IF MenS$="Q" THEN bbk=VAL(numM$(2))+1 bbk=bbk+1 IF bbk>VAL(numM$(2)) THEN chde=1 WEND GOTO BoardRead ReverseBoardRead: a$=r$+"Messages "+numM$(1)+" to "+numM$(2):GOSUB Modem a$=r$+"Start with which message :":GOSUB A1:bbk=VAL(t$) IF bbkVAL(numM$(2)) THEN bbk=VAL(numM$(2)) chde=0 WHILE chde<1 IF bbk> VAL(Board$(meni)) THEN Board$(meni)=STR$(bbk):Board$(meni)=RIGHT$(Board$(meni),LEN(Board$(meni))-1) Boars$=STR$(bbk):Boars$=RIGHT$(Boars$,LEN(Boars$)-1) Boars$=RIGHT$(zl$,1)+Boars$+"." file$="df1:Board/"+Boars$:Ddt=0:GOSUB SeqRead a$=r$+"N- Next R- Reply Q- Quit :":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="R" THEN GOSUB BoardPost IF MenS$="Q" THEN bbk=VAL(numM$(1)) bbk=bbk-1 IF bbk VAL(Board$(meni)) THEN Board$(meni)=STR$(bbk):Board$(meni)=RIGHT$(Board$(meni),LEN(Board$(meni))-1) file$="df1:Board/"+RIGHT$(zl$,1)+ScanM$(bbk)+".":GOSUB SeqRead a$="N- Next R- Reply Q- Quit :":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="R" THEN GOSUB BoardPost IF MenS$="Q" THEN bbk=lamprey IF bbk=lamprey THEN chde=1 WEND GOTO BoardRead BoardScan: a$=r$+"Messages "+numM$(1)+" to "+numM$(2):GOSUB Modem a$=r$+"Start which Message :":GOSUB A1:k=VAL(t$) IF kVAL(numM$(2)) THEN MoreBoards a$=r$+"Mark Messages? (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF MenS$="Y" THEN elwin=1:GOTO MoreScan elwin=0 MoreScan: edch=0:lamprey=0 WHILE edch<1 a$=ABCS$((k*2)-1):GOSUB Modem a$=ABCS$(k*2):GOSUB Modem IF elwin=1 THEN a$=r$+"Mark (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)) IF elwin=1 AND MenS$="Y" THEN lamprey=lamprey+1:ScanM$(lamprey)=STR$(k) IF elwin=1 AND MenS$="Y" THEN ScanM$(lamprey)=RIGHT$(ScanM$(lamprey),LEN(ScanM$(lamprey))-1) k=k+1 IF k>VAL(numM$(2)) THEN edch=1 WEND GOTO MoreBoards BoardChange: a$=r$+"Choose Board (1-9) or List (L) :":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1)):meni=VAL(t$) IF MenS$=CHR$(10)OR MenS$=CHR$(13) THEN MoreBoards IF MenS$="L" THEN file$="df1:Board/ListBoards":GOSUB SeqRead:GOTO BoardChange IF meni>=1 AND meni<=9 THEN zl$="FmT"+MenS$:GOTO Boards GOTO BoardChange